home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Ham⁄GPS / NET⁄Mac Starters kit / NET%2FMacStartersKit.sea / NET_Mac Starters kit / Docs & Help / NET_Mac Beginners Guide < prev    next >
Text File  |  1992-02-19  |  95KB  |  1,464 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Beginner's Guide to TCP/IP
  8. on the Amateur Packet Radio Network
  9. Using the KA9Q Internet Software
  10.  
  11. Version 1.0
  12. May 9, 1990
  13.  
  14. by
  15.  
  16. Gary E. Ford, N6GF
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23. Copyright 1990 by Gary E. Ford.
  24. All Rights Reserved.
  25.  
  26. This Document may be reproduced in whole or in part for any
  27. non-commercial purpose, as long as credit is given to the author.
  28.  
  29.  
  30. This document was amended by G0OAN to cover NET/Mac  ( PA2AGA version ) and IM/Mac 1.0b8,
  31. Feb 1992.
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41. Table of Contents
  42.  
  43. 1.    Introduction                    
  44. 1.1.    Objectives of This Guide
  45. 1.2.    Acknowledgements
  46. 2.    Necessary Resources
  47. 2.1.    Computer
  48. 2.2.    TNC
  49. 2.3.    Radio
  50. 2.4.    IP Address
  51. 2.5.    NET/Mac Software
  52. 3.    Definitions, Conventions, and Notation
  53. 3.1.    Conventions Used in this Guide
  54. 3.2.    Notation Used in this Guide
  55. 4.    NET/Mac
  56. 4.1.    Executing NET/Mac
  57. 4.2.    Command and Converse Modes
  58. 4.3.    Utility Commands
  59. 4.4.1.    help
  60. 4.4.2.    pwd
  61. 4.4.3.    cd <directory>
  62. 4.4.4.    dir [<directory>]
  63. 4.4.5.    start <server>
  64. 4.4.6.    stop <server>
  65. 4.5.    Managing Multiple Sessions
  66. 4.6.    Abbreviating NET/Mac Command Names
  67. 4.7.    Exiting NET/Mac
  68. 5.    Telnet
  69. 5.1.    Initiating a Telnet Session
  70. 5.2.    Accepting a Telnet Session
  71. 5.3.    File Upload and Download    
  72. 5.3.1.    record <file>|off
  73. 5.3.2.    upload <file>
  74. 5.4.    Closing a Telnet Session
  75. 6.    Mail
  76. 6.1.    Executing IM/Mac    
  77. 6.2.    IM/Mac  Menu Commands    
  78. 6.2.1.     File Menu
  79. 6.2.2.    Edit Menu
  80. 6.2.3.    Mail Menu
  81. 6.2.4.    Windows Menu 
  82. 6.2.5.    Options Menu
  83. 6.4.    Mail Addresses
  84. 6.5.    SMTP
  85. 6.5.1.    smtp kick
  86. 7.    File Transfer
  87. 7.1.    Ftp Command
  88. 7.2.    Ftp Converse Mode Commands
  89. 7.2.1.    dir [<file>|<directory> [<localfile>]]
  90. 7.2.2.    ls [<file>|<directory> [<localfile>]]
  91. 7.2.3.    pwd
  92. 7.2.4.    cd <directory>
  93. 7.2.5.    get <remote_file> [<local_file>]
  94. 7.2.6.    put <local_file> [<remote_file>]
  95. 7.2.7.    quit
  96. 7.2.8.    abort
  97. 7.2.9.    type [a|i]
  98. 7.2.10.    dele <remote_file>
  99. 7.2.11.    mkdir <remote_directory>
  100. 7.2.12.    rmdir <remote_directory>
  101. 7.3.    Ftp Example
  102. 8.    AX.25 Services
  103. 8.1.    Initiating an AX.25 Connection
  104. 8.2.    File Upload and Download
  105. 8.2.1.    record <file>|off
  106. 8.2.2.    upload <file>
  107. 8.3.    Terminating an AX.25 Connection
  108. 8.4.    AX.25 Mailbox
  109. 9.    Monitoring Activity
  110. 9.1.    ax25 heard [on|off|clear]
  111. 9.2.    finger
  112. 9.3.    ping
  113. 9.4.    trace
  114. 10.    Advanced Topics
  115. 10.1.    TCP
  116. 10.1.1.    tcp status [<tcb_addr>]
  117. 10.1.2.    tcp kick <tcp_addr>
  118. 10.1.3.    tcp reset <tcp_addr>
  119. A.1.    Installation Overview
  120. A.2.    File Structure
  121. A.3.    NET/Mac Configuration File -- AUTOEXEC.NET
  122. A.3.1.    #
  123. A.3.2.    hostname <host_name>
  124. A.3.3    ax25 mycall <callsign>[-<value>]
  125. A.3.4    ip address <ip_addr>
  126. A.3.5.    attach
  127. A.3.6.    ip ttl <value>
  128. A.3.7.    param ax0 <value1> <value2>
  129. A.3.8.    route add
  130. A.3.9.    smtp timer <value>
  131. A.3.10.    smtp gateway <host>
  132. A.3.11.    tcp mss <value>
  133. A.3.12.    tcp window <value>
  134. A.3.13.    start <server>
  135. A.3.14.    ax25 digipeat [on|off]
  136. A.3.15.    ax25 heard [on|off]
  137. A.3.16.    ax25 maxframe <value>
  138. A.3.17.    ax25 paclen <value>
  139. A.3.18.    ax25 retry <value>
  140. A.3.19.    ax25 window <value>
  141. A.3.20.    mbox [on|off]
  142. A.3.21.    log <file>
  143. A.4.    The Hosts File -- HOSTS.NET
  144. A.5.    Mail Configuration File -- BM.RC
  145. A.5.1.    host <host_name>
  146. A.5.2.    user <username>    
  147. A.5.3.    edit <directory>\<editor>
  148. A.5.4.    fullname <your full name>
  149. A.5.5.    reply <return address>
  150. A.5.6.    mbox <file>
  151. A.5.7.    record <file>
  152. A.5.8.    folder <directory>
  153. A.5.9.    smtp <directory>
  154. A.5.10.    Example BM.RC File
  155. A.6.    The Alias File -- ALIAS
  156. A.7.    The FTP Users File -- FTPUSERS
  157. A.8.    Finger Files
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171. 1.    Introduction
  172.  
  173. TCP/IP is the common name for a set of protocols developed to allow cooperating computers to share resources across a network.  A protocol is simply a set of conventions or rules which must be adhered to by the communicating computers on a network to ensure that the information being exchanged is received and interpreted correctly.  In the amateur radio software implementation of TCP/IP networking, the command set of the TNC is replaced with a very basic set of commands and the protocols run in the user's computer.  This opens up the real power of computer-to-computer networking via packet radio.
  174.  
  175. TCP/IP provides multiple connections (sessions), ASCII (text) and binary (executable programmes and encoded text) file transfer, electronic mail, and keyboard-to-keyboard services.  It was originally designed for the Department of Defence to connect unlike mainframe computers in the military, government, research institutions, private industry, and universities so that all could share resources on a common network.  TCP/IP was originally designed so that it could be used with packet radio networks and it has since been modified so that it is both usable on amateur radio networks and complies with CD rules on amateur radio digital transmissions.
  176.  
  177. While there are many commands in a TCP/IP software package, it is still easy to use.  The user first sends a few software commands to the TNC to substitute its limited command set with an even simpler command set (called "KISS," for "keep it simple stupid") and transfers control to the TCP/IP software in the user's computer.  The user can then engage in TCP/IP communications, or, since the software package has the capability of communicating in normal AX.25 packet, the user can operate with AX.25 packet bulletin boards, keyboard connects, digipeaters, or NET/ROM nodes.
  178.  
  179. TCP/IP has several advantages over normal AX.25 packet.  At its lower levels, its strategies for retransmission of packets, exponential backoff in the face of channel congestion, handling of lost and duplicated packets, and packetization of data to be transmitted often lead to better overall channel throughput.  It is designed to be a multi-connect, store-and-forward system.  With TCP/IP, your local switch (similar to a node on AX.25) will hold your mail, check every so often to see if your system is active and when it sees you on the air, will send your mail to a sub-directory on your computer's disk drive.  Mail can also be forwarded from an AX.25 PBBS.  There is never a "station busy" reply on TCP/IP, since the software provides for multiple sessions, with the switch passing out mail to connected stations much like a dealer dealing cards, while handling a file transfer at the same time.  There is even a method to give emergency traffic a higher priority in the queue.
  180.  
  181. The most accurate name for the set of protocols we are describing is the "Internet protocol suite." This is a layered family of protocols.  TCP (transmission control protocol) and IP (internet protocol) are two of the lower level protocols.  While the end-user of the suite does not often interact with the TCP or IP protocols, they are the best known of the protocols, and it has become common to use the term TCP/IP to refer to the whole family.  It is probably not worth fighting this habit.
  182.  
  183.  
  184.  
  185.  
  186. This document is a beginner's guide to use of the KA9Q Internet Software Package on the amateur radio packet network (AMPRNET).  The KA9Q package is the result of several years of development by Phil Karn, KA9Q, and his "merry band of men." The "TCP group" has grown to include hundreds of individuals worldwide, many of whom have contributed ideas to this software.  The software resulting from this collaboration is extremely versatile.  It was written for the IBM PC and clones, but has been ported to the Apple Macintosh, Atari ST, Commodore Amiga, and to several versions of UNIX machines.  It has drivers for several hardware interfaces, allowing communication on wire networks as well as packet radio networks.
  187.  
  188. The KA9Q Internet Package, in particular the programme NET/Mac, provides the following services:
  189.  
  190. telnet    The telnet protocol, as implemented in the KA9Q software, allows users to communicate by a keyboard connection.  The end result is the same as doing an AX.25 connection in most cases, but you take advantage of the attributes of TCP/IP.
  191.  
  192. mail    The simple mail transfer protocol (SMTP) provides services for sending and receiving mail.  The sending, receiving, and forwarding computers can run unattended during this transfer, so it is not necessary to log into a PBBS to pick up your mail.  A separate programme, IM/Mac, written by Ivo Van Ursel, ON1XK, is available to compose and read mail messages. It is also documented in this guide.
  193.  
  194. file transfer    The file transfer protocol (FTP) allows a user on any computer to get files from another computer, or to send files to another computer.  Security is handled by requiring the user to specify a user name and password for the other computer.
  195.  
  196. ax25 services    Regular AX.25 services are also provided, so that NET/Mac can be used for all of your packet radio activities.  You can connect to a friend who is not running TCP/IP and conduct a keyboard chat.  In addition, NET/Mac provides an AX.25 mailbox, allowing your friends to send you mail and to initiate a keyboard chat.
  197.  
  198. NET/ROM    NET/Mac also allows your packet system to serve as a NET/ROM node, although this will not be documented in this guide.
  199.  
  200. An advantage to the TCP/IP protocols and software is that the routing of packets through several systems to the eventual destination is simpler for the user than that required in AX.25 or NET/ROM forwarding.  You do not need to know the full route to the destination.  Rather, you set up a routing table to the stations that you can communicate with directly.  If all other systems set up accurate routing tables, your packets will be forwarded properly to the desired destination.
  201.  
  202. There are many other TCP/IP services that may be made available for use on packet radio in the future.  The routing tables can be set up and kept up-to-date automatically, without requiring the user to edit the table.  When multi-tasking computers become commonplace hobbyist machines, you will be able to remotely login to these systems to execute programmes on them.  Network file systems may become available, so that you can store your files on a remote disk and access them through the packet radio network.  Most of these potential services will require higher baud rate networks, as a 1200 baud radio link is just too slow to support them.
  203.  
  204.  
  205. 1.1.    Objectives of This Guide
  206.  
  207. The objectives of this guide are intentionally limited.  The guide is intended to encourage more hams to use NET/Mac software on the amateur packet radio network (AMPRNET) and thus, it is aimed at beginners.  It provides information on installing and using NET/Mac and IM/Mac on an Apple Macintosh, with a serial interface to a TNC running the KISS (Keep It Simple, Stupid) firmware.
  208.  
  209. This guide only documents the subset of the NET/Mac commands that are of most use to a beginning end-user of the software and the packet network.  Short descriptions of all of the top-level NET/Mac commands are given in Appendix B. 
  210.  
  211.  
  212.  
  213. 1.2.    Acknowledgements
  214.  
  215. Much of the material in this guide was taken from "The KA9Q Internet Software Package," with permission from the author, Bdale Garbee.  Thanks go to Shayne Hughes, N6SPE, who helped me with the "software archeology," as we read the source code and experimented with the programmes to find out how they worked.  Thanks also go to Jim Pearce, N6ESV, and Chuck Bland, N6DBT, who provided many useful comments on the manuscript.
  216.  
  217. I would appreciate receiving any comments you have about this guide.  I can be contacted at the following addresses:
  218.  
  219. AX.25 PBBS:    N6GF@WA6NWE.#NOCAL.CA
  220. Internet:    ford@iris.ucdavis.edu
  221. U.S. Mail:    226 Diablo Ave., Davis, CA 95616
  222.  
  223. NET/Mac version input to G0OAN @ GB7HSN.#32.GBR.EU
  224.  
  225.  
  226. 2.    Necessary Resources
  227.  
  228. The purpose of this section of the guide is to describe the necessary resources you must have available to be able to set up an amateur packet radio system running TCP/IP.  The hardware requirements of TCP/IP are nearly the same as any AX.25 packet station, although this guide assumes that the host computer is an Apple Macintosh.
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244. 2.2.    TNC
  245.  
  246. The TNC (terminal node controller) used for NET/Mac  must run the KISS firmware.  This includes the TAPR TNC-1, TNC-2 and clones produced by several manufacturers, equipped with a ROM running KISS.  For the TNC-2 or clones, version 1.1.6 of the firmware, or later, is required.  Most of the more recent TNCs also run the KISS firmware.
  247.  
  248. Attach your TNC to your Mac’s serial port using an RS-232C cable, following your TNC manufacturer's instructions.  Set the baud rate between the computer and the TNC as recommended in the TNC instructions.  Verify that the TNC works properly in the AX.25 mode, again following the TNC instructions, and then enter the commands to run KISS.
  249.  
  250. For the TNC-2 and clones, at the "cmd:" prompt, first type "KISS ON" and you will receive the message "KISS WAS OFF" and another "cmd:" prompt.  Type "RESTART" and you should note that the CON and STA LEDs will flash three times to indicate you have entered the KISS mode.  This command set will then have effect for subsequent power on/off cycles.  To return to normal operation, enter the command "param ax0 255" at the "net>" prompt when you are running the KA9Q TCP/IP software package.
  251.  
  252. For Kantronics TNCs, typing "KISSMODE ON" while in command mode, followed by "RESET," will put the TNC in KISS mode.  Turning the TNC off and then on will cause the TNC to return to command mode.  If you first turn KISSMODE ON and then PERM the value in EEPROM, when the TNC is turned on, it will automatically be in KISS mode.
  253.  
  254. For other TNCs, follow the manufacturers instructions to enter the KISS mode.
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267. 2.3.    Radio
  268.  
  269. The majority of the TCP/IP packet operations are on 2 meters, so you will need a 2m FM transceiver.  The radio requirements for TCP/IP are the same as those for AX.25 packet.  Follow the directions in your TNC manual to interface the transceiver to the TNC.
  270.  
  271. In most areas, TCP/IP packet operations are found in the frequency ranges 144.91-145.09 MHz and 145.71-145.79 MHz.  You will have to ask around to find out what frequency is being used in your area.  One way to find the TCP/IP operation is to operate your TNC in the AX.25 mode and monitor the frequencies with "MONITOR ON." The TCP/IP frequency is the one that causes the most "garbage" to be displayed on your screen, although NET/ROM nodes also cause this problem as well.  The reason for this is that AX.25 TNCs do not decode the TCP/IP or NET/ROM control information.
  272.  
  273. 2.4.    IP Address
  274.  
  275. IP addresses are 32 bit numbers that uniquely identify a given machine (or "host") running the TCP/IP protocol suite.  All of the possible 32 bit numbers are coordinated by an entity known as the Network Information Centre, or NIC.  Amateur Radio operators are fortunate in that a "Class A Subnet" consisting of 24 bits of address, in the range 44.X.X.X, has been reserved for our use.  By general consensus, Brian Kantor, WB6CYT, of San Diego, CA, now serves as the top level administrator of the 44.X.X.X address space, and assigns blocks of addresses to regional coordinators from around the world.
  276.  
  277. You need to have a unique address before you can link in with the rest of the networked world.  The best way to get one is to ask around the local packet community and find out who your local address coordinator is.  Your local coordinator will then assign you an address from the block for your area.
  278.  
  279. If you have not yet obtained your IP address and want to get on the air immediately, you may temporarily use [44.128.0.*], with '*' replaced by a number between 1 and 255.  Try to be sure that no one else in your area is using the same number.
  280.  
  281. Brian Kantor can be reached as brian@ucsd.edu on the Internet if you have access to this wire network and need help locating your local address coordinator.
  282.  
  283. 2.5.    NET/Mac Software
  284.  
  285. The TCP/IP programme NET/Mac and the mailer IM/Mac are likely to found to be available in your local area.  You should inquire about availability on your local packet BBS.  This would not only provide you with the software, but also contact with someone who has used the software and could help you with its installation and use.  Further, since the source code to these programmes is available, many local versions are available and it is often to your advantage to use these local versions.
  286.  
  287. The programmes NET/Mac and IM/Mac must be installed and configured on your computer.  The easiest way to deal with this is to edit the sample configuration files that are included in most distributions of the software.  Local distributions also include configuration information appropriate for your local network, so it is to your advantage to acquire the software locally.  If your distribution does not include the sample files, detailed information on installation and configuration is given in Appendix A of this guide.  The information in this appendix can also be used to understand the commands given in the sample files.
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296. 3.    Definitions, Conventions, and Notation
  297.  
  298. In this section, some terms used in TCP/IP networking are defined and the conventions and notation used in the guide are explained.
  299.  
  300.  
  301. Each system on the amateur packet radio network is referred to as a "node" or "host," terms that are derived from wire networks.  Since each TCP/IP node includes a computer, the term "machine" is also used interchangeably with "node" and "host." As a user, you employ a "local host" and you communicate with a "remote host." The local host requests services from the remote host, and as a result, the remote host is known as a "server" and the local host is a "client." Actually, servers are provided for each of the supported protocols.
  302.  
  303. Some hosts are set up not for use by an end user, but rather to forward other packets, similar to the function of an AX.25 digipeater, and to serve as a file repository.  These systems are generally operated 24 hours a day and are known as "switches" or "gateways." Some of these systems are set up to serve as mail gateways to and from AX.25 PBBS systems.  Note, however, that end user hosts can also be used to forward TCP/IP packets.
  304.  
  305. Each host on the AMPRNET must be identified by an IP address, a 32 bit number that uniquely identifies a given machine.  Hosts are also known by a symbolic name which is linked to the IP address in the configuration file, HOSTS.NET.
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316. 3.1.    Conventions Used in this Guide
  317.  
  318. The conventions used in this guide are described below.  The intent was to produce this guide in the form of a simple ASCII (plain text) file that could be distributed through the AMPRNET.  Thus, it was not possible to use bold or italic fonts, changes in point size, or underlining to clarify meaning.
  319.  
  320. parameter    Literal argument.  A character string such as "parameter," with no surrounding brackets, is a required portion of a command and is to be typed exactly as shown.
  321.  
  322. <parameter>    Variable argument.  A command argument enclosed by arrow brackets, such as "<parameter>," is a variable.  An appropriate value for the variable must be used in the command.  Appropriate values to be substituted are described as needed in this guide.
  323.  
  324. [parameter]    Optional argument.  A command argument enclosed by square brackets, such as "[parameter]," is an optional argument.  The effect of including, or not including, this argument in a command is described in this guide.
  325.  
  326. [<parameter>]    Optional variable argument.  A command argument enclosed by first by arrow brackets and then by square brackets, such as "[<parameter>]," is an optional variable argument.
  327.  
  328. |    "OR" operator.  Command arguments separated by "|" mean that either one or the other argument is to be used.  For example, "<host>|clear" means that you are to either enter the variable <host> or the literal argument "clear."
  329.  
  330. 3.2.    Notation Used in this Guide
  331.  
  332. The following is the notation to be used in describing the commands in this
  333. guide.
  334.  
  335. <ip_addr>    The numeric IP address of a host in dotted decimal notation enclosed by brackets, e.g. [44.2.0.100].
  336.  
  337. <host_name>    The symbolic name of a host.
  338.  
  339. <host>    Denotes a host, switch, or gateway, which may be specified either as a symbolic name (<host_name>), or as a numeric IP address (<ip_addr>).  The mappings between IP addresses and symbolic names are defined in the file "HOSTS.NET" described in section A.4 of Appendix A.
  340.  
  341. <callsign>    An amateur callsign, either in upper or lower case.
  342.  
  343. <directory>    The name of an existing directory on the host computer.  Directory references can either be relative to the current directory, or absolute, beginning at the root (\).  To refer to the parent directory, ".." can be used.
  344.  
  345. <file>    The name of a file, e.g. HOSTS.NET.
  346.  
  347. <value>    An integer number.
  348.  
  349. <cr>    A carriage return, usually marked "Return" on most keyboards.  Note that all commands given in this guide must be followed by a carriage return, although the <cr> notation will not be used in this case.  <cr> is only used when the "command" needed is a carriage return on an otherwise empty line.
  350.  
  351. <F10>    The command key labelled "F10" or "f10" at the top or left side of the keyboard.
  352.  
  353. 4.    NET/Mac
  354.  
  355. The programme that implements the Internet protocols is NET/Mac.  In this section, information on executing NET/Mac, its command and converse modes,  NET/Mac utility commands and managing multiple sessions are provided.  Information on the major NET/Mac commands is given in later sections.
  356.  
  357.  
  358. 4.1.    Executing NET/Mac
  359.  
  360. Double click the NET/Mac icon.
  361.  
  362. If the software has been installed correctly, NET/Mac attempts to open the configuration file "AUTOEXEC.NET" in the root  of the current drive.  This file is described in section A.3 of Appendix A.  You should then be presented with a window including revision information and a copyright statement, followed by a prompt of "net>."  If you don't get this, something is wrong.  Check your installation to see if you missed something.  If you still have troubles, find a TCP/IP user and ask for help.
  363.  
  364. 4.2.    Command and Converse Modes
  365.  
  366. The programme may be in one of two modes: command mode or converse mode.  In command mode, the prompt "net>" is displayed and any of the NET/Mac commands described in this guide may be entered.  In converse mode, keyboard input is processed according to the "current session," which may be either a telnet, ftp, or AX.25 connection.  In a telnet or AX.25 session, keyboard input is sent to the remote host and any output from the remote host is displayed on the console.  In an ftp session, only ftp converse mode commands may be entered.  In these sessions, the user remains in converse mode until either the session is terminated (described in the sections of this guide dealing with telnet, ftp, or AX.25) or by escaping back to command mode, as described below.
  367.  
  368.  
  369. The user may escape back to command mode from converse mode by pressing the escape key.  Or on a MacPlus the tile key “ ` “.  However you can change this using the escape command in the Autoexec.net file. The command mode prompt "net>" will be displayed and any of the NET/Mac commands may be entered.  The session that the user "escaped" from will remain active.  By entering <cr> at a "net>" prompt, the user will return to converse mode in the "current session." Multiple sessions can be handled by NET/Mac.  For more information on multiple sessions, see section 4.5 below.
  370.  
  371.  
  372. 4.4.    Utility Commands
  373.  
  374. NET/Mac provides several utility commands to provide help information, manage directories, and to start and stop the servers.  These commands are useful in a variety of sessions.
  375.  
  376. 4.4.1.    help
  377.  
  378. Use HELP from the apple menu. This will displays a list of the main NET/Mac commands.  The command "?" is equivalent to "help." Note that several commands are listed that are not described in this guide.  Concise descriptions of the commands listed by help are given in Appendix B.
  379.  
  380. 4.4.2.    pwd
  381.  
  382. Displays the name of the current directory on the local machine.
  383.  
  384. 4.4.3.    cd <directory>
  385.  
  386. Changes the current directory to <directory>, which must be an existing directory on the local machine.  The directory specified can be relative to the current directory, or absolute, with the name beginning at the root (\).
  387.  
  388. 4.4.4.    dir [<directory>]
  389.  
  390. List the contents of the specified directory on the console.  If no argument is given, the current directory is listed.
  391.  
  392. 4.4.5.    start <server>
  393.  
  394. Starts the specified Internet server, allowing remote connection requests.  Servers include: finger, ftp, remote, smtp, and telnet.  Normally these servers are started in the AUTOEXEC.NET file.  However, you may not want to start all of the servers automatically.  For example, you may not want to start telnet until you know you will be available at the keyboard to respond.  You can then enter "start telnet" from the "net>" prompt to activate the telnet server.
  395.  
  396. 4.4.6.    stop <server>
  397.  
  398. Stops the specified Internet server, rejecting any further remote connect requests.  Existing connections are allowed to complete normally.  For example, you could enter "stop telnet" if you expect to be unavailable to respond to a telnet request.  Then, when anyone tries to telnet to you, they will get the message "Closed (Reset)." This is not the most informative message, but possibly better than waiting endlessly to see if you will respond to the telnet request.
  399.  
  400. 4.5.    Managing Multiple Sessions
  401.  
  402. The NET/Mac programme can handle multiple sessions.  For example, you can have an ftp file transfer running at the same time as a telnet session.  However, you should limit your use of multiple sessions on a 1200 baud radio channel, as you will cause considerable congestion.
  403.  
  404. To start a second session, escape from the first session to the "net>" prompt by pressing your escape key.  Start the second session as you would normally (as described in the sections of this guide dealing with telnet, ftp, or AX.25).
  405.  
  406. To monitor the multiple sessions, use the "session" command from the "net>" prompt.  The syntax for this command is:
  407.  
  408. session [<session #>]
  409.  
  410. Without arguments, "session" displays a list of current sessions, including session number, remote TCP or AX.25 address and the address of the TCP or AX.25 control block.  An asterisk (*) is shown next to the "current" session; entering <cr> at this point will put you in converse mode with that session.  Entering a session number as an argument to the session command will put you in converse mode with that session.  You can of course select an open session from the windows menu. If the telnet server is enabled, the user is notified of an incoming request and a session number is automatically assigned.  The user may then select the session normally to converse with the remote user as though the session had been locally initiated.  An example of a session list:
  411.  
  412.  #       &CB  Type   Rcv-Q  State        Remote socket
  413.  
  414.  0     8ac14   FTP      69  Established  eyolo:ftp
  415. *1     8b3d4  AX25       0  Connected    n6spe-1
  416.  
  417.  
  418.  
  419. 4.6.    Abbreviating NET/Mac Command Names
  420.  
  421. Many of the NET/Mac command names can be abbreviated.  However, the valid abbreviations have not been documented.  Further, there are some cases where the abbreviated (or lengthened) name will appear to be accepted as a valid command name, but the command will not execute properly.  Thus, it will be left to the user to experiment with the abbreviations.  It is recommended that you use the command names given in this guide, as they have been tested and found to work as
  422. described.
  423.  
  424. 4.7.    Exiting NET/Mac
  425.  
  426. Before you exit NET/Mac, you should check to see if you have any sessions active.  This is done with the "tcp status" command, described in section 10.1.1.
  427.  
  428. When you are sure you want to exit the NET/Mac use QUIT in the file menu.
  429.  
  430. 5.    Telnet
  431.  
  432. The telnet command allows you to initiate a keyboard connection using the telnet protocol.  The end result is the same as doing an AX.25 connect in most cases, but you'll be taking advantage of the attributes of the TCP/IP protocols, as described in the introduction.
  433.  
  434. 5.1.    Initiating a Telnet Session
  435.  
  436. The command to initiate a telnet session with the specified host and enter telnet converse mode is:
  437.  
  438. telnet <host>
  439.  
  440. For example:
  441.  
  442. telnet n3eua         (talk to N3EUA, address in HOSTS.NET)
  443. telnet [44.32.0.4]   (use the numeric address directly)
  444.  
  445. If the connection is made, you can type back and forth just as if you were connected with a normal TNC.  When you're done, use the escape key to get back to command mode, and then type 'close' to close the connection, as described in section 5.4 below.
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454. 5.2.    Accepting a Telnet Session
  455.  
  456. If a remote host requests a telnet session, a message similar to the following will be displayed on your console:
  457.  
  458. Incoming Telnet session 0 from 44.2.0.96:1026
  459.  
  460. Select the new session from the windows menu.
  461.  
  462. 5.3.    File Upload and Download
  463.  
  464. The telnet session can be recorded to a file, or an ASCII file can be uploaded instead of entering the information at the keyboard.
  465.  
  466. 5.3.1.    record <file>|off
  467.  
  468. Opens <file> and appends to it all data received or sent on the current telnet session.  If you are in telnet converse mode and want to initiate recording, you will need to use the escape key to get back to command mode to issue the record command.  The message "Recording into <file>" will be displayed and another "net>" prompt will be issued.  Enter <cr> on a blank line and you will return to the telnet converse mode with recording activated.  The command "record off" stops recording and closes the file.
  469.  
  470. 5.3.2.    upload <file>
  471.  
  472. Opens <file> (must be an ASCII, file, not a binary file) and sends it on the current telnet session as though it were typed on the terminal.  If you are in telnet converse mode and want to initiate uploading, you will need to use the escape key to get back to command mode to issue the upload command.  The uploading is initiated, but the file contents are not displayed on the screen during the uploading.  When the uploading is complete, the message "Uploading off" is displayed.  Enter <cr> on a blank line at the "net>" prompt and you will return to the telnet converse mode.
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480. 5.4.    Closing a Telnet Session
  481.  
  482. To close a telnet session, the following command is used:
  483.  
  484. close [<session #>]
  485. If you are in telnet converse mode, you will have to press the escape to get back to the "net>" prompt to issue this command.  If you are running only one session, entering close without arguments will close the session.  If you have multiple sessions, entering close without arguments will initiate a close on the current session.  If you are running multiple sessions, the "session" command will display a list of these sessions.  Entering close with a session number argument will initiate a close on the specified session.  Only one of the hosts involved in the telnet session needs to initiate the close.  "Disconnect" is functionally the same command as "close."
  486.  
  487. 6.    Mail
  488.  
  489. One of the most useful features of TCP/IP is electronic mail.  Mail can be delivered to your unattended machine and you can read it at your leisure.  There is no need to log into a PBBS to pick up your messages.  Your messages can also be temporarily stored on your local switch and be delivered to your machine when you run NET/Mac.
  490.  
  491. Mail messages are composed and read and the mailbox is managed with the programme IM/Mac.  NET/Mac, using the protocol SMTP (simple mail transport protocol) sends and receives the mail.  This section concentrates primarily on IM/Mac, but a few comments on SMTP are given in subsection 6.5.
  492.  
  493.  
  494. 6.1.    Executing IM/Mac
  495.  
  496. Double click the IM/Mac icon. Both NET/Mac and IM/Mac will run under Mulitfinder.
  497.  
  498.  
  499.  
  500. IM/Mac will first read the mail configuration file, BM.RC, described in section A.5 of Appendix A, and then will read the default mailbox defined in this configuration file.  Using the IM/Mac menu commands described in section 6.2, you can then compose or read mail messages or manage your mailbox.
  501.  
  502.  
  503. 6.2.    IM/Mac Menu Commands
  504.  
  505. 6.2.1.    FILE MENU.
  506.  
  507. New.
  508.  
  509.         Will open a new message entry window so that you can compose out going mail.
  510.  
  511. OPEN MAIL FILE.
  512.  
  513.         Use this to open and read new mail which has arrived.
  514.  
  515. CLOSE.
  516.  
  517.        Will close currently open window. Does not work with “Inbound,” and “Outbound,” mail
  518.        windows.
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526. SEND FILE.
  527.  
  528.      This will load from disk into your current message a prepared file. This file will not be displayed in the current message window but will be included in your  final message.
  529.  
  530. SAVE.
  531.  
  532.      Normal Macintosh “Save,” command.
  533.  
  534. SAVE AS.
  535.  
  536.      Normal Macintosh “SaveAs,” command.
  537.  
  538. PAGE SETUP.
  539.  
  540.      Normal Macintosh “Page SetUp,’ command.
  541.  
  542. PRINT.
  543.  
  544.      Normal Macintosh “Print,” command
  545.  
  546. QUIT.
  547.  
  548.     Normal Macintosh “Quit,” command.
  549.  
  550.  
  551. 6.2.2. EDIT MENU.
  552.  
  553.     Provides all the normal Macintosh edit commands.
  554.  
  555. 6.2.3.    MAIL MENU.
  556.  
  557.  
  558.  
  559. REPLY.
  560.  
  561.     Reply to a message.  Reply reads the header information in order to construct a reply to the sender.  The destination information is taken from the "From:" or the "Reply-To:" header, if included.  If no message number is supplied the current message is used.
  562.  
  563. FORWARD.
  564.  
  565.    The forward command is used to forward a mail message to another recipient.  If no message number is supplied the current message is used.  The user is prompted for the recipients and a subject.  The mail header is added to the message text while retaining the complete original message in the body. 
  566.  
  567. BOUNCE.
  568.  
  569.    Bounce a message.  Bounce is similar to forwarding but instead of your user information, the original sender information is maintained.  If no message number is supplied the current message is used.
  570.  
  571. SEND.
  572.  
  573.    This command will open a dialog box from which you enter the subect of the message and also set the address of the recipient. You may do this in one of two ways. Either use an entry from your ALASI file which will be on the left hand side of the dialog or click the SPECIAL button where you can enter the address by hand.
  574.  
  575. DELETE.
  576.  
  577.     Delete will erase a message . You do this by clicking a message in either the incoming or outgoing windows. Then once the message has been highlighted choose delete from the menu.
  578.  
  579. UNDELETE.
  580.  
  581.     Will undelete a message that you have just erased. This is provided that IM/Mac has not been updated, see below.
  582.  
  583. UPDATE.
  584.  
  585.     Will cause IM/Mac to update all the mail information.
  586.  
  587. 6.2.4 WINDOWS MENU.
  588.  
  589.      Will display all the mail windows, ie incoming, outgoing, message entry etc etc.
  590.  
  591. 6.2.5 OPTIONS MENU.
  592.  
  593. EDIT BM.RC
  594.  
  595.     This will allow you to edit the bm.rc file which sets all your mail information.
  596.  
  597. EDIT FOOTER.
  598.  
  599.     This will allow you to set text which will be added as the last line of all outgoing mail.
  600.  
  601. EDIT PARAMETERS.
  602.  
  603.     This allow you to customise many of the IM/Mac settings.
  604.  
  605. 6.4.    Mail Addresses
  606.  
  607. Mail is addressed to a recipient, which is either a user name defined in a BM.RC file (described in section A.5 of Appendix A) or an "alias," which is an alternative name for one or more users.  Aliases are defined in the ALIAS file, described in section A.7 of Appendix A.  These recipients can be on the local host or a remote host.
  608.  
  609. Mail addressing varies from simple to mildly confusing.  The simplest form is:
  610.  
  611. <recipient>[@<host>]
  612.  
  613. If @<host> is not included, IM/Mac will search to see if <recipient> is in the ALIAS file on the local host.  If it is, it will be expanded to the recipient list given for the alias.  If <recipient> is not given in the alias file, the message will be sent to <recipient> on the local host (this is probably not what you intended, unless you have more than one user on your host).
  614.  
  615. If the address <recipient>@<host> is used, the message will be sent to <host>, where <recipient> is first looked up in the ALIAS file on <host>.  If <recipient> is found to be an alias, it will be expanded to the recipient list given for the alias, and the message will be forwarded to these recipients.  If <recipient> is not found in the alias file, the message will be delivered to <recipient> on <host>.
  616.  
  617. Host names can be found in your HOSTS.NET file, described in section A.4 of Appendix A.  Valid mail user names for a given host can be found using the finger command, as described in section 9.2, if the finger files have been set up on the this host.  If an ALIAS file has been distributed for your area, mail addresses and aliases will be found there.  Otherwise, you will have to contact the intended recipient and ask for his or her address.
  618.  
  619. If the remote host of the recipient is not on the air when you try to send the message, it will remain in your mail queue until some time when both hosts are on the air at the time you attempt to send the message.  To avoid this delay, switches have been set up in many areas which run 24 hours a day and can be used for mail forwarding.  If the switch your recipient communicates with is <switch> (a host name), then the mail can be addressed as:
  620.  
  621. <recipient>%<host>@<switch>
  622.  
  623. Your mail will be transferred to <switch> and then forwarded to <recipient>@<host>, using the stored route to <host>.
  624.  
  625. 6.5.    SMTP
  626.  
  627. NET/Mac sends and receives mail using the simple mail transport protocol (SMTP).  This is handled automatically by NET/Mac, although, you may want to "kick" out your outgoing mail manually, as described below.
  628.  
  629. When mail is received, SMTP displays the message:
  630.  
  631. New mail arrived for <user>
  632.  
  633. where <user> is the addressee of the received mail.
  634.  
  635. If you have included the "smtp timer" command in your AUTOEXEC.NET file, SMTP will check your outbound mail queue at the time interval you have set to determine if there is any new outgoing mail that should be sent.  If you haven't included this command, or you want to send out your mail before the next timer interval, you can manually "kick" out your outgoing mail, as described below.
  636.  
  637. 6.5.1.    smtp kick
  638.  
  639. This command will review the outgoing mail queue and attempt to deliver any pending mail.  This command allows the user to "kick" the mail system manually.  This command can be entered at a "net>" prompt after you have composed mail messages.
  640.  
  641. 7.    File Transfer
  642.  
  643. The ftp command provides for the transfer of files using the file transport protocol.  It enables you to do the following:
  644.  
  645. Transfer text and binary files between local and remote host
  646. List directories on a remote host
  647. Delete files on a remote host
  648. Create and remove directories on a remote host
  649.  
  650. The remote host can be unattended and the ftp server on that host will provide the requested services.
  651.  
  652. File access privileges are defined in the FTPUSERS file, described in section A.8 of Appendix A.  This file defines user login names, passwords, directories to be accessed and file access privileges.  It is a common convention to allow arbitrary users limited access to files under the special user names "anonymous" or "guest."
  653.  
  654. 7.1.    Ftp Command
  655.  
  656. The command ftp is used to initiate an ftp session.  It is invoked as:
  657.  
  658. ftp <host>
  659.  
  660. where <host> is the desired remote host.  If the session is established, you will enter converse mode on the new ftp session.  When in converse mode with an ftp server, only the ftp commands described below will be valid.  This will remain true until the ftp "quit" command is issued, ending the ftp session, and returning you to the "net>" prompt.
  661.  
  662. When the connection between the two machines is opened, you'll get a banner from the remote machine, followed by a prompt for your user name and then your password.  If you've negotiated with the person at the remote machine to have a special user name and password set up for you in his or her FTPUSERS file, use that.  If not, use one of the special user names, "anonymous" or "guest," and in this case, use your call sign as your password.  Your password is recorded in the log file on the remote host, allowing the manager of that host to keep track of ftp activity.
  663.  
  664. 7.2.    Ftp Converse Mode Commands
  665.  
  666. The following are the ftp commands that are valid in ftp converse mode, which you enter after your password is accepted.
  667.  
  668. 7.2.1.    dir [<file>|<directory> [<localfile>]]
  669.  
  670. Without arguments, "dir" requests that a full directory listing of the remote server's current directory be sent to your display.  If one argument is given, it is interpreted as a specific file or sub-directory on the remote file system that is to be listed.  If two arguments are given, the second is taken as the local file into which the directory listing should be written (instead of being sent to the display).  The full listing gives the file names, sizes, and creation dates.  You should request a directory listing when you first log into an unfamiliar machine.  There will often be a file named "README" or "whathere.txt" that will give some information about the files available on the remote machine.  This file can then be acquired with a "get" command (described below), and read on your machine to learn more about the files available on the remote host.
  671.  
  672. 7.2.2.    ls [<file>|<directory> [<localfile>]]
  673.  
  674. ls is identical to the "dir" command except that an abbreviated directory listing is provided.  This listing gives only the file names.
  675.  
  676. 7.2.3.    pwd
  677.  
  678. Displays the name of the current directory on the remote host.
  679.  
  680. 7.2.4.    cd <directory>
  681.  
  682. Changes the current directory on the remote host to the directory indicated by <directory>, which must be an existing directory on the remote host.  The directory specified can be relative to the current directory, or absolute, with the name beginning at the root (\).
  683.  
  684. 7.2.5.    get <remote_file> [<local_file>]
  685.  
  686. Asks the remote host to send the file specified in the first argument and to write the file on the local machine.  The second argument, if given, will be the name of the file on the local machine; otherwise it will have the same name as on the remote host.  See the "type" command below if the file requested is other than an ASCII file.  If the file is over 10,000 characters in size, you should only start the transfer when the radio channel is relatively quiet.  Use the "abort" command below if you want to terminate the transfer before it has been completed.
  687.  
  688. 7.2.6.    put <local_file> [<remote_file>]
  689.  
  690. Asks the local host to send the file specified in the first argument and to write the file on the remote machine.  The second argument, if given, will be the name of the file on the remote host; otherwise it will have the same name as on the local machine.  You must have write privilege on the remote host to use this command.  Use the "abort" command below if you want to terminate the transfer before it has been completed.  See the "type" command below if the file to be sent is other than an ASCII file.
  691.  
  692.  
  693. 7.2.7.    quit
  694.  
  695. Terminates the ftp session and returns you to the "net>" prompt.
  696.  
  697. 7.2.8.    abort
  698.  
  699. Aborts a get, put, dir or ls operation in progress.  This is the only acceptable command when these operations are in progress; all other commands will result in an error message.  Abort is valid only when a transfer is in progress.  When a get or put operation is aborted, a partial copy of the transferred file will be left on the destination machine, which must be removed manually if it is unwanted.  This is also true for a dir or ls operation when the directory listing is written as a local file.
  700.  
  701. 7.2.9.    type [a|i]
  702.  
  703. Tells both the local and remote hosts the type of file that is to be transferred.  Without arguments, the current mode is displayed.  The default is "a", which means ASCII (i.e., a text file).  In "i" mode, which means IMAGE, files are sent exactly as they appear in the file system.  This mode must be used when exchanging raw binary files (executables, compressed archives, etc).  The file type must be set before a "get" or "put" command is initiated.  The file type remains in effect until it is changed by a subsequent "type" command.
  704.  
  705. 7.2.10.    dele <remote_file>
  706.  
  707. Deletes a file on the remote machine.  You must have delete privilege on the remote host to use this command.
  708.  
  709. 7.2.11.    mkdir <remote_directory>
  710.  
  711. Creates a directory with the name <remote_directory> on the remote machine.  You must have write privilege on the remote host to use this command.
  712.  
  713. 7.2.12.    rmdir <remote_directory>
  714.  
  715. Deletes <remote_directory> on the remote machine.  The remote directory must be empty before you can remove it.  You must have delete privilege on the remote host to use this command.
  716.  
  717. 7.3.    Ftp Example
  718.  
  719. In the ftp example below, the user initiates an ftp session with the remote host "eyolo," logs in as the user "anonymous," requests a directory listing, changes to subdirectory, gets a binary file and terminates the session.  The text given in parentheses to the right of the commands indicate what has been typed by the user.
  720.  
  721. net> ftp eyolo                                         (ftp eyolo)
  722. SYN sent
  723. Established
  724. 220 eyolo.ampr.org FTP version 89042.1 ready at Mon Mar 26 16:16:54 1990
  725. Enter user name: anonymous                             (anonymous)
  726. 331 Enter PASS command
  727. Password: n6gf                                         (n6gf)
  728. 230 Logged in
  729. dir                                                    (dir)
  730. 200 Port command okay
  731. 150 opening data connection for LIST \public
  732. docs\                 16:42  3/02/90  lists\        16:40  3/02/90
  733. programmes\             14:40  3/02/90  utility\      16:42  3/02/90
  734. whathere.txt   1,755  18:22  3/21/90
  735. 5 files. 6,959,104 bytes free.  Disk size 10,584,064 bytes.
  736. Get complete, 265 bytes received
  737. 226 File sent OK
  738. cd programmes                                          (cd programmes)
  739. 257 "\public\programmes" is current directory
  740. dir                                                  (dir)
  741. 200 Port command okay
  742. 150 Opening data connection for LIST \public\programmes
  743. bm.exe   41,225  17:55  2/25/90  net.exe   174,454  17:43  2/25/90
  744. 2 files. 6,959,104 bytes free.  Disk size 10,584,064 bytes.
  745. Get complete, 135 bytes received
  746. 226 File sent OK
  747. type i                                               (type i)
  748. 200 Type OK
  749. get bm.exe                                           (get bm.exe)
  750. 200 Port command okay
  751. 150 opening data connection for RETR bm.exe
  752. Get complete 41225 bytes received
  753. 226 File sent OK
  754. quit                                                 (quit)
  755. 221 Goodbye!
  756. Close wait
  757. Last ACK
  758. Closed (Normal)
  759. net>
  760.  
  761. The user's callsign was used as the password, which is shown in this example.  However, the password is not echoed to the screen by the software.  Note that there are no prompts for ftp in the converse mode.  After you receive the message "230 Logged in" you can issue ftp commands.  The display generated by the "dir" command in this example shows that the user was logged into the \public directory.  The listing shows that there is one file, named "whathere.txt," of size 1755 bytes, created at 18:40 on 3/21/90.  There are also four subdirectories, indicated by "\" at the end of their names: "docs\," "lists\," "programmes\," and "utility\," all created on 3/2/90.  The dir output is finished with the "226 File sent OK" message and the user can then issue another ftp command.  The command "cd programmes" is issued to change to the subdirectory programmes.  A dir command on this subdirectory shows that there are two files, "bm.exe" and "net.exe." These are executable programmes since the file name extensions are "exe" and therefore, they are binary files.  The "type i" command is issued so that a binary file can be transferred.  The "get" command is issued and there will be a delay as the "bm.exe" file is retrieved.  This is also finished when the message "226 File sent OK" is received.
  762.  
  763. 8.    AX.25 Services
  764.  
  765. NET/Mac provides AX.25 services, better known as the standard packet radio protocol that you probably used before you switched to TCP/IP.  This allows you to use NET/Mac to move to another frequency and check into the local AX.25 PBBS, or to initiate a keyboard session with a friend who hasn't been convinced to switch to TCP/IP yet.  In addition, there is an AX.25 mailbox, allowing that same friend to connect to your system and initiate a keyboard session, or to send a message to anyone reachable on TCP/IP.
  766.  
  767. 8.1.    Initiating an AX.25 Connection
  768.  
  769. The connect command is used to initiate an AX.25 connection.  The syntax is:
  770.  
  771. connect ax0 <callsign> [<digipeater> ...  ]
  772.  
  773. This initiates an AX.25 session to the specified call sign.  Up to 7 optional digipeaters may be given; note that the word "via" is NOT needed.  Data sent on this session goes out in conventional AX.25 packets with no upper layer protocol.  The de-facto presentation standard format is used, in that each packet holds one line of text, terminated by a carriage return.  Two examples are:
  774.  
  775. connect tnc n3eua              (connect direct to N3EUA)
  776. connect tnc n3eua n1fed n0ccz  (con to N3EUA via N1FED and N0CCZ)
  777.  
  778. If all is well, you should get "Conn Pending" and then "Connected" messages.  At this point, you're connected just like using a plain old TNC.
  779.  
  780. When you're ready to disconnect, use the <F10> key to escape from the session back to the 'net>' prompt, and then type 'disconnect', as described in section 8.3.
  781.  
  782. 8.2.    File Upload and Download
  783.  
  784. AX.25 sessions can be recorded to a file and a file can be uploaded in place of typing the information on the keyboard.
  785.  
  786. 8.2.1.    record <file>|off
  787.  
  788. Opens <file> and appends to it all data received or sent on the current AX.25 session.  If you are in AX.25 converse mode and want to initiate recording, you will need to use the <F10> key to escape back to command mode to issue the record command.  The message "Recording into <file>" will be displayed and another "net>" prompt will be issued.  Enter <cr> on a blank line and you will return to the AX.25 converse mode with recording activated.  The command "record off" stops recording and closes the file.
  789.  
  790. 8.2.2.    upload <file>
  791.  
  792. Opens <file> and sends it on the current AX.25 session as though it were typed on the terminal.  If you are in AX.25 converse mode and want to initiate uploading, you will need to use the <F10> key to escape back to command mode to issue the upload command.  The uploading is initiated, but the file contents are not displayed on the screen during the uploading.  When the uploading is complete, the message "Uploading off" is displayed.  Enter <cr> on a blank line at the "net>" prompt and you will return to the AX.25 converse mode.
  793.  
  794. 8.3.    Terminating an AX.25 Connection
  795.  
  796. To terminate an AX.25 connection, use the following command:
  797.  
  798. disconnect [<session #>]
  799.  
  800. If you are in AX.25 converse mode, press <F10> to escape back to the "net>" prompt to issue this command.  If you are running only one session, entering disconnect without arguments will terminate the connection.  If you have multiple sessions, entering disconnect without arguments will initiate a close on the current session.  If you are running multiple sessions, the "session" command will display a list of these sessions.  Entering disconnect with a session number argument will initiate a close on the specified session.  After entering disconnect, you should get "Disc pending" and then "Disconnected" messages.  Note that "disconnect" is the same as the "close" command and that the two command names can be used fully interchangeably.
  801.  
  802. 8.4.    AX.25 Mailbox
  803.  
  804. If your AUTOEXEC.NET file (described in section A.3 of Appendix A) contains the command "mbox on," then your AX.25 mailbox will be accessed when someone running the standard AX.25 packet protocol connects to you.  When the connection is made, the remote user must first enter <cr> and then a banner and prompt similar to the following will be displayed:
  805.  
  806. Welcome to the n6gf.ampr.org TCP/IP Mailbox
  807. (C)hat, (S)end, (B)ye >
  808.  
  809. If the user chooses (C)hat, an AX.25 keyboard connection with your system is requested.  A message similar to the following will be displayed on your console:
  810.  
  811. Incoming AX25 session 0 from N6QGG
  812.  
  813. If you are in command mode, enter <cr> at a "net>" prompt and you will enter converse mode for the AX.25 keyboard session.  If you are in converse mode, use the <F10> key to escape back to command mode, use the "session" command to list the active sessions, and then use the "session <session#>" command to enter converse mode on the desired AX.25 session.  When you are finished with the chat, you can use the <F10> key to escape from the session back to the 'net>' prompt, and then type 'disconnect', as described above.  Alternatively, the AX.25 user who initiated the session can terminate it by disconnecting in the standard way.
  814.  
  815. The syntax for the (S)end command is:
  816.  
  817. S <recipient>[@host] [< from_addr ] [$bulletin_id]
  818.  
  819. With one argument, this will send a message to the specified mail address.  See sections 6.2.9 and 6.4 for a description of mail addresses.  The user will be prompted for a subject, then asked to enter the message.  Instructions are given for ending the message with ^Z or /EX beginning a line, the same as that for AX.25 PBBS's.  With two arguments, the user can send a message into the TCP/IP network, using the addressing scheme described in Section 6.4 of this guide.  The third and fourth arguments are primarily for use in PBBS forwarding and will not be described here.  After sending a message, the mailbox command prompt will be displayed to the user again.  Entering B (for Bye) will terminate the mailbox session.
  820.  
  821. 9.    Monitoring Activity
  822.  
  823. Several commands are available to monitor activity on the packet radio channel and to acquire information about a remote host.
  824.  
  825. 9.1.    ax25 heard [on|off|clear]
  826.  
  827. Works like the "mheard" function in many TNC's.  The command "ax heard," with no parameters displays the list of callsigns heard and with options "on" and "off" you control whether the list is updated or not.  With the option "clear," you clear the list of callsigns.  If you are interested in monitoring the channel with this command, include "ax25 heard on" in your AUTOEXEC.NET file, as described in section A.3.20 of Appendix A.
  828.  
  829. An example listing:
  830.  
  831. Heard list: Sat Mar 31 15:09:23 1990
  832.  
  833. KB6RIH     ARP  NETROM  IP    Sat Mar 31 15:08:07 1990
  834. KA6FUB-3        NETROM        Sat Mar 31 15:04:57 1990
  835. HIGH        Sat Mar 31 14:25:06 1990
  836. N6VV-15     Sat Mar 31 14:05:16 1990
  837. N6SPE-1    ARP          IP    Sat Mar 31 12:49:30 1990
  838. N6QWS      (via HIGH)  Sat Mar 31 12:36:59 1990
  839. N6QGG       Sat Mar 31 12:20:51 1990
  840.  
  841. KB6RIH is running NET/Mac, using the address resolution protocol (ARP), NETROM, and the internet protocol (IP).  KA6FUB-3 is a NETROM node.  HIGH is an AX.25 digipeater.  N6VV-15 was being forwarded through the KA6FUB-3 NETROM node.  The only clue from this listing that this was a NETROM forward is the SSID (-15) on N6VV's callsign.  N6SPE-1 is also running NET/Mac, using ARP and IP.  N6QWS was heard digipeated through HIGH.  Finally, N6QGG was heard direct on AX.25.
  842.  
  843. 9.2.    finger
  844.  
  845. This command allows you to "finger" information files on your host or on a remote host.  Finger files are described in section A.9 of Appendix A.
  846.  
  847. The syntax for the finger command is:
  848.  
  849. finger [<finger_file>][@<host>]
  850.  
  851. where <finger_file> is the name of the finger information file you wish to query and <host> is the name of the remote host where the file resides.
  852.  
  853. If you issue the command in the following form:
  854.  
  855. finger <finger_file>
  856.  
  857. you can query information from a finger file on the local host, namely your own system.  This is useful for testing finger on a system that you know is running.
  858.  
  859. The command in the following form:
  860.  
  861. finger @<host>
  862.  
  863. is used to acquire the names of the finger files available on <host>.  This command returns a list of all finger files on the remote computer.
  864.  
  865. Finally, issuing the command as:
  866.  
  867. finger <finger_file>@<host>
  868.  
  869. will display <finger_file> from <host>.
  870.  
  871. When you have been fingered by a remote host, a message similar to the following will be displayed:
  872.  
  873. You're being fingered by 44.2.0.98:1001!
  874.  
  875. 9.3.    ping
  876.  
  877. This command is used to see if a remote host is on the air and if so, to determine the quality of the path between the local and remote host.  The syntax for this command is:
  878.  
  879. ping [<host>|clear] [<interval>]
  880.  
  881. When the command is issued in the form:
  882.  
  883. ping <host>
  884.  
  885. the remote host given in the argument is queried once.  If it returns an echo, the IP number of the host and the round trip time required are displayed.  For example:
  886.  
  887. 44.2.0.96: echo reply id 0 seq 30522, 5508 ms
  888.  
  889. In this case, the round trip to remote host [44.2.0.96] took 5508 ms, or about 5.5 seconds.  If no echo is received, due to the host being off the air, a poor path to the host, or a packet collision, nothing is displayed.
  890.  
  891. Issuing the command in the form:
  892.  
  893. ping <host> <interval>
  894.  
  895. sets up a repetitive test, where the remote host is queried at a time interval given by the number in the second argument, interpreted in seconds.  Repetitive queries can be set up for several hosts at once, by issuing a command for each host.  Users should be careful not to overdo this testing, as the ping queries will add to channel congestion.  The current results are displayed with the third form of the ping command, and the repetitive queries continue until the "ping clear" command is issued.
  896.  
  897. Entering the command "ping," without an argument, displays a table of the current results of the repetitive queries, listing the IP numbers of the remote hosts, number of ping queries sent, number of ping echoes received, percent of queries echoed, average round trip time and the ping interval time.  For example:
  898.  
  899. Host          Sent    Rcvd   %   Avg RTT  Interval
  900. 44.2.0.96       18      17  94      6596        60
  901. 44.2.0.98       18      18 100      3209        60
  902.  
  903. Finally, issuing the command in the form:
  904.  
  905. ping clear
  906.  
  907. cancels the repetitive ping requests and clears the table of ping query results.
  908.  
  909. 9.4.    trace
  910.  
  911. The trace command is used to monitor the activity on the channel.  The syntax of this command is:
  912.  
  913. trace [ax0 [<flags>]|allmode|cmdmode]
  914.  
  915. The flags enable or disable tracing and determine the amount of information displayed.  Without arguments, trace gives a list of all defined interfaces and their tracing status.  This guide only considers the use of a single interface, "ax0." The flags are given as a hexadecimal number which is interpreted as follows:
  916.  
  917. TIO
  918. |||---    Enable tracing of output packets if 1, disable if 0
  919. ||----    Enable tracing of input packets if 1, disable if 0
  920. |-----    Controls type of tracing:
  921.  
  922. 0 -    Protocol headers are decoded, but data is not displayed
  923. 1 -    Protocol headers are decoded, and data (but not the headers themselves) are displayed as ASCII characters, 64 characters/line.  Unprintable characters are displayed as periods.
  924. 2 -    Protocol headers are decoded, and the entire packet (headers AND data) is also displayed in hexadecimal and ASCII, 16 characters per line.
  925.  
  926. There is an additional option for tracing that allows you to select whether traced packets are always displayed, or only displayed when you are in command mode.  Having tracing only happen in command mode sometimes provides the right mix between "knowing what's going on," and "keeping the garbage off the screen" while you're typing.  To select tracing all the time (the default mode), use 'trace allmode'.  To restrict tracing to command mode, use 'trace cmdmode'.
  927.  
  928. For example, to trace the activity on interface ax0, with an ASCII display:
  929.  
  930. trace ax0 111
  931.  
  932. To turn off this tracing:
  933.  
  934. trace ax0 000
  935.  
  936. 10.    Advanced Topics
  937.  
  938. While this document is intended to be a guide for beginners, there are a few advanced topics of interest to many users that should be mentioned.  The presentation of these topics is concise and the reader should consult "The KA9Q Internet Software Package," by Bdale Garbee, for details.
  939.  
  940.  
  941.  
  942. Note that the commands included in the NET/Mac configuration file, AUTOEXEC.NET, and described in Appendix A, can also be used interactively.  Further, these commands, when issued without their variable arguments, will report the current values of these arguments.  For example, the "route" command, issued without arguments, will display the current routing table.  These commands, issued with arguments, can be used to alter the configuration of NET/Mac while it is running.  For example, "route add," described in section A.3.8., can be used to add entries to the routing table, possibly to experiment with alternative routes.  To drop routes that are found to be unreliable, the following command can be used:
  943.  
  944. route drop <dest_host>
  945.  
  946. where <dest_host> is the IP address or host name for the destination of your packets.  Note that if you find better routing methods with this experimentation, you will have to edit the "route add" commands in your AUTOEXEC.NET file for this routing table to be in effect the next time you run NET.
  947.  
  948. 10.1.    TCP
  949.  
  950. The TCP command can be used to monitor and control session status at a lower level than provided elsewhere in the KA9Q software package.
  951.  
  952. 10.1.1.    tcp status [<tcb_addr>]
  953.  
  954. Issued without the optional argument, this command displays the status table for TCP sessions.  For example:
  955.  
  956. conout 102 conin 109 reset out 5 runt 0 chksum err 3 bdcasts 0
  957.    &TCB  Rcv-Q Snd-Q  Local socket      Remote socket  State
  958.  
  959. 2e90e444     0     0  44.2.100:79        0.0.0.0       Listen (S)
  960. 2e90e59c     0     0  44.2.100:25        0.0.0.0       Listen (S)
  961. 2e90e790     0     0  44.2.100:23        0.0.0.0       Listen (S)
  962. 2e90eafc     0   335  44.2.100:1001      44.2.0.32:25  Established
  963. 2e90e4fc     0     0  44.2.100:21        0.0.0.0       Listen (S)
  964.  
  965. The first line gives some TCP level statistics, including the number of outbound and inbound connections to your host.  The table below gives a summary of all existing TCP connections.  "&TCB" is the TCP address, "Rcv-Q" and "Snd-Q" are the numbers of characters in the receiving and sending queues, "Local socket" and "Remote socket" give the IP address and port of the local and remote host, "State" gives the state of the session.  Note that the remote socket IP address is given as 0.0.0.0 for the listening servers.  Each session is assigned to a port.  The server ports are 79 for finger, 25 for SMTP, 23 for Telnet, and 21 for FTP.  In this example, there is an established outbound SMTP session, assigned to port 1001 on the local host, connected to the SMTP server on port 25 of the host with IP address 44.2.0.32.  335 characters are in the queue ready to be transmitted.
  966.  
  967. Issuing the command with the argument <tcb_addr>, taken from the "&TCB" column in the table, will provide a more detailed table of information on the specified TCP connection.  Of particular interest is the last line of the table, which provides information about the retry timer.  This is the timer that determines when a packet retransmission will be attempted.  It is expressed in the form "running time/threshold time," both given in milliseconds.  When the running time reaches the threshold, the pending packet will be retransmitted.  If receipt of this packet is not acknowledged, the threshold time will be increased and the running timer will be restarted.  When the channel becomes congested, the threshold time becomes very large, and the data throughput drops substantially.  This is known as the "exponential backoff" strategy of TCP/IP.
  968.  
  969. You should display the TCP status before you exit NET/Mac.  This will let you know if there are any active connections.  For example, you should not exit NET/Mac if someone is running an FTP session with your host.  Except for the clatter of your disk drive, you would not be aware of an active FTP session unless you check the TCP status.  If there are some active sessions, it is best to leave NET/Mac running so that your TCP/IP node stays on the air.  If you think you have "stuck" sessions in which there is no active packet transmission, see section 10.1.3 for information on resetting these sessions.
  970.  
  971. 10.1.2.    tcp kick <tcp_addr>
  972.  
  973. If there is data on the send queue of the TCP connection indicated by the argument <tcb_addr>, taken from the table generated by the "tcp status" command, this will force an immediate retransmission.  This can be attempted if the connection appears to be "stuck." This can happen if the route is unreliable, or if there is considerable channel congestion.  This command should be used sparingly, as it adds to channel congestion and defeats the TCP strategies to deal with this congestion.
  974.  
  975. 10.1.3.    tcp reset <tcp_addr>
  976.  
  977. Resets the TCP connection indicated by the argument <tcp_addr>, taken from the table generated by the "tcp status" command.  This effectively terminates the connection.  While this command should not be used indiscriminately, there are situations in which it is useful, primarily when a TCP connection has gotten "stuck." The three common situations in which a TCP connection can get stuck are: remote host has crashed, propagation path of the route to the remote host has deteriorated, and there is extreme congestion on the channel.  In each of these situations, tcp status for the corresponding TCP connection will show an increasingly large threshold time.
  978.  
  979. If you are in a telnet session or an AX.25 connection, you will find that you will wait nearly forever for a response from the remote host.  If you want to give up on the session, escape to NET/Mac and close (or disconnect) the session.  If there is no response from the remote host, the session can remain half open and should be reset using the tcp reset command.
  980.  
  981. Similarly, an FTP session can also become stuck.  If you are in the midst of a file transfer (get or put operation), use the FTP converse command "abort" to terminate the transfer.  Then the "quit" command will initiate a close on the session.  If there is no response from the remote host, the half open session should be reset using tcp reset.
  982.  
  983. Another situation in which this command is appropriate for use is the "stuck" SMTP session.  As discussed in section 6.2.14, when a mail message has begun to be sent, it is "locked." If the route to the destination host is unreliable, the exponential backoff strategy of TCP can cause the transfer to be delayed almost indefinitely.  If you want to terminate the transfer, so that you can try again at another time, or using a different route, you can reset the corresponding TCP session.  When this is done, the associated mail message is unlocked and can be resent, or killed from IM/Mac if you want to give up on the message entirely.
  984.  
  985. Appendix A.  Installation of NET/Mac and IM/Mac
  986.  
  987. As with most software, some effort is needed to get NET/Mac and IM/Mac installed and properly configured on your system.  This requires setting up the proper directory structure and editing some configuration files.  While there are a number of details to attend to, none of this is very difficult.
  988.  
  989. The configuration files discussed below must be edited with a text editor.  Any editor will do, as long as it writes ASCII (simple text) files.  A word processing programme will work as well, as long as you have it write an ASCII output file.
  990.  
  991. A.1.    Installation Overview
  992.  
  993. It will be assumed that you have received a disk (or disks) containing at least the files NET/Mac and IM/Mac  You may also have the files AUTOEXEC.NET, HOSTS.NET, FTPUSERS, and ALIAS, although if these were not included on your distribution, don't panic, as you will be able to create them with an editor.
  994.  
  995. Here are the steps you will have to take to install the KA9Q Internet Package, where the root directory (\) is preferably on your C: hard disk drive, or otherwise on your A: floppy disk drive:
  996.  
  997. 1.    Copy NET/Mac and IM/Mac on to the disk you wish to use then from.
  998. 2.    Create the directory structure described in section A.2
  999. 3.    Copy the file AUTOEXEC.NET and edit as described in section A.3.
  1000. 4.    Copy the file HOSTS.NET and edit as described in section A.4.
  1001. 5.    Copy the file BM.RC and edit as described in section A.5.
  1002.  
  1003. 6.    Copy the ALIAS file and edit as described in section A.7.
  1004. 7.    Copy the FTPUSERS file and edit as described in section A.8.
  1005. 8.    Create the finger file(s) in the folder  finger and edit as described in section A.9.
  1006.  
  1007. A.2.    File Structure
  1008.  
  1009. Some of the required files will be kept at the top of your primary disk drive, but several other folders  must also be set up.
  1010.  
  1011. spool folder    The NET/Mac log file (described in section A.3.21) is normally stored in this directory.
  1012.  
  1013. spoo:mail folder    This folder holds the individual mailboxes for each user name on your system.  The extension .txt is added to the user name to form the mailbox name.  Mail received by the SMTP server is appended to the mailbox file.
  1014.  
  1015. spool:mqueue folder    This folder holds the outbound mail jobs.  Each job consists of 2 files:  an xxx.txt and xxx.wrk file, where xxx is a unique numerical prefix.  When the job is being sent, an xxx.lck file is also created.  The file sequence.seq is used to keep track of the last message number.  The mail transport protocol, SMTP, and the mail programme, IM/Mac, manage the files in this folder.
  1016.  
  1017. public folder    This folder holds the files available for anonymous ftp, described in section A.8.
  1018.  
  1019. finger folder    This folder holds the finger files, described in sections 9.2 and A.9.
  1020.  
  1021. The files that will reside at the top of your drive include:
  1022.  
  1023. NET/Mac
  1024. IM/Mac
  1025. AUTOEXEC.NET
  1026. BM.RC
  1027. ALIAS
  1028. FTPUSERS
  1029.  
  1030. A.3.    NET/Mac Configuration File -- AUTOEXEC.NET
  1031.  
  1032. The AUTOEXEC.NET file, has a function similar to that of the AUTOEXEC.BAT file in DOS, hence the name.  When NET/Mac is executed, it reads AUTOEXEC.NET and executes all of the commands as if they had been typed in to the programme from the keyboard.  This provides an easy mechanism for setting up the initial system configuration, including setting the IP address, hostname, AX.25 parameters, routing table, servers to start, and protocol variables.  This file is to be located at the top of the current disk drive on your system.
  1033.  
  1034. An example AUTOEXEC.NET file is usually distributed with the NET/Mac software.  This file is fully commented and explains how the example file should be edited for your use.  If this file is not available, use a text editor to create the file, following the instructions given in the subsections below.  It is suggested that you put the commands into AUTOEXEC.NET in the order given below.
  1035.  
  1036. A.3.1.    #
  1037.  
  1038. Commands starting with the hash mark (#) are ignored.  This is mainly useful for comments in the AUTOEXEC.NET file.  The comments can appear anywhere in the file.
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045. A.3.2.    hostname <host_name>
  1046.  
  1047. Sets the local host's name (an ASCII string, NOT an IP address).  This is usually chosen to be <call>.ampr.org, where <call> is your amateur call sign.  The suffix 'ampr.org' is officially recognised as meaning an 'Amateur Packet Radio' station.  Your hostname will show up in mail headers and in the greeting messages from the SMTP (mail), FTP (file transfer), and AX.25 mailbox servers.
  1048.  
  1049. For example:
  1050.  
  1051. hostname n6gf.ampr.org
  1052.  
  1053. A.3.3    ax25 mycall <callsign>[-<value>]
  1054.  
  1055. Set the local AX.25 address.  It does the same thing that 'MYCALL' does in your AX.25 TNC.  The standard format is used, e.g., KA9Q or WB6RQN-5.  The optional dash (-) and <value> following the callsign is the SSID (substation ID), used when it is necessary to distinguish between two or more packet stations with the same callsign.  The SSID will be 0 unless explicitly set to another value, which must be a decimal number from 0 to 15.  This command must be given before any attach command using the AX.25 mode is given.  For example:
  1056.  
  1057. ax25 mycall n6gf
  1058.  
  1059. A.3.4    ip address <ip_addr>
  1060.  
  1061. Sets the local IP address.  See section 2.4 for information on acquiring an IP address.  For example:
  1062.  
  1063. ip address [44.2.0.100]
  1064.  
  1065. A.3.5.    attach
  1066.  
  1067. The attach command configures and attaches a hardware interface to the system.  While many interfaces can be handled by NET/Mac, in this guide, only a single serial interface to a TNC running the KISS protocol will be considered.  The general form of the command for our purposes is:
  1068.  
  1069. attach asy <I/O address> <vector> ax25 ax0 <bufsize> <mtu> <baud>
  1070.  
  1071. "asy" refers to a standard Macintosh asynchronous interface.  Other hardware interfaces are supported by NET/Mac, but will not be covered in this guide.
  1072.  
  1073. <I/O address> is the base address of the control registers for the serial interface. There is really no need for the on a Macintosh, but it needs to be there.
  1074.  
  1075. <vector> is the Macintosh serial interface you wish to use.  Both interfaces are catered for “a” been the modem port and “b” been the printer port.
  1076.  
  1077. "ax25" forms IP datagrams to correspond to the AX.25 packet protocol.  Other modes are supported by NET/Mac, but will not be covered in this guide.
  1078.  
  1079. "ax0" is the name by which the interface will be known to the various commands, such as "connect," "route" and "trace". You can change this to anything you like, ie TNC, VHF, UHF, etc etc.
  1080.  
  1081. For asynchronous ports, <bufsize> specifies the size of the ring buffer in bytes to be statically allocated to the receiver; incoming bursts larger than this may (but not necessarily) cause data to be lost.  The suggested value is 1024.
  1082.  
  1083. <mtu> is the maximum transmission unit size, in bytes.  Datagrams larger than this limit will be fragmented at the IP layer into smaller pieces.  The suggested value is 256.
  1084.  
  1085. <baud> is the baud rate of the serial communication between the computer and the TNC.  It must be chosen to be the same value as the baud rate selected on the TNC, as discussed in section 2.3.  The suggested value is 4800 for an XT, and 9600 for an AT.
  1086.  
  1087. Example 1 -- Attach the modem port to operate in AX.25 mode at 4800 baud with a KISS TNC.
  1088.  
  1089. attach asy 1 a ax25 ax0 2048 256 4800
  1090.  
  1091.  
  1092.  Example 2 -- Attach the printer port to operate in AX.25 mode at 9600 baud with a KISS TNC.
  1093.  
  1094.  
  1095. attach asy 1 b ax25 ax0 2048 256 9600
  1096.  
  1097.  
  1098. A.3.6.    ip ttl <value>
  1099.  
  1100. Sets the default time-to-live value placed in each outgoing IP datagram.  This limits the number of switch hops the datagram will be allowed to take.  The idea is to bound the lifetime of the packet should it become caught in a routing loop, so the value should be somewhat larger than the diameter of the loop.  A suggested value is 16.  For example:
  1101.  
  1102. ip ttl 16
  1103.  
  1104. A.3.7.    param ax0 <value1> <value2>
  1105.  
  1106. Param invokes a device-specific control routine.  On a KISS TNC interface, this sends control packets to the TNC.  Data values are treated as decimal.  This command is used to change TNC parameters such as TXDELAY, TXTAIL, PERSIST, and SLOTTIME.  This command is TNC-specific, so you must read the documentation for the KISS implementation for your TNC.  Most KISS implementations include good default values, so you shouldn't have to use this feature, but if things don't work, you can use the "param" command to try tweaking the TNC.
  1107.  
  1108. On a TNC-2, <value1>=1 will set TXDELAY (the time after key down when packet information is transmitted) to <value2> X 0.01 seconds.  To set TXDELAY to 0.5 seconds:
  1109.  
  1110. param ax0 1 50
  1111.  
  1112. On Kantronics TNCs, <value1>=1 sets TXDELAY to <value2> X 0.01 seconds, as with the TNC-2.  For <value1>=2, PERSIST is set to <value2>.  For <value1>=3, SLOTTIME is set to <value2> X 0.01 seconds.  The default values for these parameters are generally acceptable, so it is usually not necessary to include these commands in AUTOEXEC.NET.
  1113.  
  1114. A.3.8.    route add
  1115.  
  1116. The "route add" command adds an entry to the routing table, defining how your outgoing packets should be routed.  Routing can be a complicated issue, so it would be best for you to get some help on this from an experienced local TCP/IP user.
  1117.  
  1118. The command syntax is:
  1119.  
  1120. route add <dest_host>[/bits]|default ax0 [<gateway_host>]
  1121.  
  1122. Basically what you are trying to do is to route your packets directly to those hosts that you can "hear" and route your packets to the remaining hosts through hosts that can serve as gateways (similar to AX.25 digipeaters).  The destination host for your packets is <dest_host>, which is either an IP address or a host name, as defined in the file HOSTS.NET, described in section A.4.  The gateway is <gateway_host>, also an IP address or host name.  Note that it is not necessary to specify the entire sequence of hosts from your system to the destination, but rather only the destination and the first stop on the way.  If the routing table on the other hosts has been set up properly, your packets will get to the desired destination.  Thus, everyone has to cooperate in keeping the packets moving.
  1123.  
  1124. In my area, N6RQR is over 40 miles away, but he is up in the foothills above me and has a good station, so I can communicate with him directly.  His IP address is [44.2.0.54], so I route packets directly to him with the statement:
  1125.  
  1126. route add [44.2.0.54] ax0
  1127.  
  1128. The option "/bits" can be used to avoid having to include a route add statement for each and every host you can communicate with directly.  To understand this, more details on IP addresses are needed.  The IP address is a 32-bit number, with four 8-bit numbers separated with periods (.).  Each 8-bit number can range from 0 to 255.  The optional "/bits" suffix to the destination host id specifies how many leading bits in the host IP address are to be considered significant in the routing comparisons.  If not specified, 32 bits (i.e., full significance) is assumed.  With this option, a single routing table entry may refer to many hosts all sharing a common bit string prefix in their IP addresses.  For example, [44.0.0.0]/8 would match all addresses in the form [44.*.*.*], where '*' is any number between 0 and 255; the remaining 24 bits are "don't-cares".  When an IP address to be routed matches more than one entry in the routing table, the entry with largest "bits" parameter (i.e., the "best" match) is used.  This allows individual hosts or blocks of hosts to be exceptions to a more general rule for a larger block of hosts.
  1129.  
  1130. The "/bits" option can be used to route packets directly to all the hams on TCP/IP in my town.  We have been assigned IP addresses in the range [44.2.0.96] to [44.2.0.111], so our addresses agree in the first 24 bits.  Further, 96 decimal is 01100000 binary and 111 decimal is 01101111 binary.  Thus, our addresses agree in an additional 4 bits, for a total of 28 bits.  The command used is:
  1131.  
  1132. route add [44.2.0.96]/28 ax0
  1133.  
  1134. Hams in a neighbouring region have been assigned IP addresses of the form [44.4.*.*].  N6RQR can forward packets to them, so we use him as a gateway with the command:
  1135.  
  1136. route add [44.4.0.0]/16 ax0 n6rqr
  1137.  
  1138. The special destination "default" is used to route datagrams to addresses not in the routing table; it is equivalent to specifying a /bits suffix of /0 to any destination host.  Care must be taken with default entries since two nodes with default entries pointing at each other will route packets to unknown addresses back and forth in a loop until their time-to-live (TTL) fields expire.  (Routing loops for specific addresses can also be created, but this is less likely to occur accidentally).
  1139.  
  1140. In my area, we route packets to all other destinations through our local switch, which has the host name "eyolo." The command used is:
  1141.  
  1142.  route add default ax0 eyolo
  1143.  
  1144. A.3.9.    smtp timer <value>
  1145.  
  1146. Sets the interval to <value>, in seconds, between scans of the outbound mail queue to determine if there is any new outgoing mail which should be sent.  For example, "smtp timer 600" will cause the system to check for outgoing mail every 10 minutes and attempt to deliver anything it finds.  For an end-user system that is not normally intended as a mail forwarder, you do not want to set the interval to be too short, as you will be frequently accessing disk needlessly.  An interval of 30 minutes (<value>=1800) is probably reasonable.  You can also "kick" out the mail manually, as described in section 6.5.1.  The suggested command is:
  1147.  
  1148. smtp timer 1800
  1149.  
  1150. A.3.10.    smtp gateway <host>
  1151.  
  1152. Defines the host to be used as a "smart" mail relay.  Any mail sent to a host not defined in the file "HOSTS.NET" will instead be sent to the gateway for forwarding.  You will have to ask locally if there is a host that is used as a mail gateway.  If so, include this command in AUTOEXEC.NET.
  1153.  
  1154. A.3.11.    tcp mss <value>
  1155.  
  1156. Set the TCP maximum segment size in bytes that will be sent on all outgoing TCP connect requests (SYN segments).  This tells the remote end the size of the largest segment (packet) it may send.  An mss of 216 will force folks to send you packets of 256 characters or less (counting the overhead).  Suggested command:
  1157.  
  1158. tcp mss 216
  1159.  
  1160. A.3.12.    tcp window <value>
  1161.  
  1162. Sets the window parameter, which establishes the maximum number of bytes that may be outstanding before your system expects an ack.  If the window is twice as big as mss, for example, there will be two active packets on the channel at any given time.  Large values of window are a problem on the air.  Keep mss <= window <= 2*mss.  Suggested command:
  1163.  
  1164. tcp window 432
  1165.  
  1166. A.3.13.    start <server>
  1167.  
  1168. Starts the specified Internet server, allowing remote connection requests.  Suggested commands:
  1169.  
  1170. start ftp
  1171. start telnet
  1172. start smtp
  1173. start finger
  1174.  
  1175. A.3.14.    ax25 digipeat [on|off]
  1176.  
  1177. Controls whether AX.25 packets addressed to this station as a digipeater will be repeated or not.  If you want to operate as a digipeater (for those poor souls not operating TCP/IP), include the following command:
  1178.  
  1179. ax25 digipeat on
  1180.  
  1181. A.3.15.    ax25 heard [on|off]
  1182.  
  1183. Controls whether the list of call signs heard is updated or not.  Suggested command:
  1184.  
  1185. ax25 heard on
  1186.  
  1187. A.3.16.    ax25 maxframe <value>
  1188.  
  1189. Establishes the maximum number of frames that will be allowed to remain unacknowledged at one time on AX.25 connections.  This number cannot be greater than 7.  Suggested command:
  1190.  
  1191. ax25 maxframe 1
  1192.  
  1193. A.3.17.    ax25 paclen <value>
  1194.  
  1195. Limits the AX.25 packet length.  This parameter should be less than or equal to the <mtu> defined in the attach command.  Suggested command:
  1196.  
  1197. ax25 paclen 256
  1198.  
  1199. A.3.18.    ax25 retry <value>
  1200.  
  1201. Limits the number of successive unsuccessful retransmission attempts on AX.25 connections.  If this limit is exceeded, link re-establishment is attempted.  If this fails "retry" times, then the connection is abandoned and all queued data is deleted.  Suggested command:
  1202.  
  1203. ax25 retry 10
  1204.  
  1205. A.3.19.    ax25 window <value>
  1206.  
  1207. Sets the number of bytes that can be pending on an AX.25 receive queue.  Suggested command:
  1208.  
  1209. ax25 window 2048
  1210.  
  1211. A.3.20.    mbox [on|off]
  1212.  
  1213. Establishes whether or not the AX.25 mailbox is on.  The mailbox allows AX.25 packet users to leave a message for you or to establish a keyboard conversation.  Suggested command:
  1214.  
  1215. mbox on
  1216.  
  1217. A.3.21.    log <file>
  1218.  
  1219. Defines the name of the file for server session log entries.  Don't include this command if you don't want to keep a log.  The suggested command is:
  1220.  
  1221. log \spool\net.log
  1222.  
  1223. You should read this file occasionally and then discard it, as it can grow to be quite large.
  1224.  
  1225. A.4.    The Hosts File -- HOSTS.NET
  1226.  
  1227. The file HOSTS.NET, created in the root directory, provides a mapping between an IP addresses and symbolic hostnames.  It is used by NET/Mac to look up a hostname to figure out the correct IP address to use.  These hostname may be used in establishing a TCP/IP connection, e.g. it is not necessary to enter 'telnet [44.2.0.98]', but merely 'telnet n6spe'.  It is kept in the root directory.  At a minimum each entry should contain the IP address and callsign. Subsequent aliases in the same entry should be separated by a single space. Each entry (IP address) represents a separate and distinct computer address.
  1228.  
  1229. The form of an entry:
  1230.  
  1231. <ip_addr> <host_name1> <host_name2> ...
  1232.  
  1233. Note that this is the one case where the IP address does not have to be enclosed in brackets.  A host can have more than one symbolic name. A Tab is recommended between the IP address and host name.
  1234.  
  1235. Here are some examples of HOSTS.NET entries:
  1236.  
  1237. 44.2.0.98 n6spe shayne
  1238. 44.2.0.100 n6gf
  1239. 44.96.0.2 wb2sef xt.wb2sef
  1240.  
  1241. Note that the domain name .AMPR.ORG has been assigned for amateur radio. By default, we assume that the hostname is the user's callsign in the case where a user has one system online, and so <callsign>.AMPR.ORG is the implied official hostname.  If you have more than one machine on the air, distinguish them by prefixing a familiar name followed by a period, as in "winfree.n3eua" or "at.n0ccz".
  1242.  
  1243. Note that the use of a callsign as a host name has nothing to do with the "mycall" parameter.  It is convenient to use the callsign as a hostname, and required to use the callsign for "mycall" to properly identify a station according to DTI  rules.
  1244.  
  1245. If there is an established group of TCP/IP users in your area, they probably maintain an up-to-date HOSTS.NET table that is made available by an ftp file transfer.
  1246.  
  1247. A.5.    Mail Configuration File -- BM.RC
  1248.  
  1249. The BM.RC file, provides IM/Mac with the configuration needed for the operation of the mailer. This can be edited from the options menu in IM/Mac or you can edit it using a word processor. However be warned all these files must be save as text files. 
  1250.  
  1251. The format for each line in the BM.RC file is:
  1252.  
  1253. <variable> <value>
  1254.  
  1255. The variables described below are valid in the BM.RC file.
  1256.  
  1257. A.5.1.    host <host_name>
  1258.  
  1259. Sets the local hostname for use in the mail headers.  This is a required field.  This should match the hostname definition in AUTOEXEC.NET.
  1260.  
  1261. A.5.2.    user <username>
  1262.  
  1263. Defines the user name of the person who is sending mail.  This is also used as the default mailbox for reading mail.  On the AMPRNET this is usually set to your call. 
  1264.  
  1265. A.5.4.    fullname <your full name>
  1266.  
  1267. Provides your full name to the mailer for use in the comment portion of the "From:" header line.  The use of fullname is optional.
  1268.  
  1269. A.5.5.    reply <return address>
  1270.  
  1271. Defines the address where you wish to receive replies to messages sent. This option is useful if you are operating your Mac on a local area network and would like your mail replies sent to a more "well known host," for example, your local switch.  The address specified by reply is used to generate a "Reply-To:" header in outbound mail.  The "Reply-To:" header overrides the "From:" header which is the address normally used to reply to mail.  This field is optional.
  1272.  
  1273. A.5.6.    mbox <file>
  1274.  
  1275. Specifies the default file to be used for the "save" command, for saving received messages.  This file is in the same format as a mailbox and may later be viewed using the -f option of IM/Mac.  If this option is not used then the default file name is set to mbox.
  1276.  
  1277. A.5.7.    record <file>
  1278.  
  1279. If defined, a copy of each message sent will be saved in <file>.
  1280.  
  1281. A.5.8.    folder <folder>
  1282.  
  1283. If defined folder contains the folder used by the save command.  If not defined, files will be saved in the current folder.
  1284.  
  1285.  
  1286.  
  1287. A.5.9.    smtp <folder>
  1288.  
  1289. Defines the folder containing the mailbox files.  The default folder is spool:mail on the current drive.
  1290.  
  1291. A.5.10.    Example BM.RC File
  1292.  
  1293. Here is an example of a BM.RC file:
  1294.  
  1295. host n6gf.ampr.org
  1296. user n6gf
  1297. reply n6gf%n6gf@eyolo
  1298. edit \bin\vi
  1299. fullname Gary Ford
  1300. mbox rcv.txt
  1301. folder \ford\packet
  1302. smtp \spool\mail
  1303.  
  1304. A.6.    Time Zone Environment Variable
  1305.  
  1306. The time zone used in mail headers
  1307.  
  1308.  
  1309. A.7.    The Alias File -- ALIAS
  1310.  
  1311. The ALIAS file, provides an easy way to maintain mailing lists.  It allows you to send mail to an easily-remembered name, instead of a complicated address.  An alias can be any string of characters not containing the "@" symbol.  The format for an entry in the alias file is:
  1312.  
  1313. <alias> <recip1> <recip2> <recip3>
  1314. <TAB> <recip4> ...
  1315.  
  1316. Note that a long list of aliases can be continued on an additional line by placing a tab or space in the first position of the continuation line.
  1317.  
  1318. Some example aliases are:
  1319.  
  1320. spe n6spe%n6spe@eyolo
  1321. dave nn2z@nn2z
  1322. # mail to local eyolo users
  1323. ey-gang n6gf%n6gf@eyolo n6spe%n6spe@eyolo
  1324.  
  1325. In the above example, when specifying ey-gang as the recipient, IM/Mac will expand the alias into the list of recipients from the alias file.
  1326.  
  1327. An alias may not contain another alias from the same file.  However, an alias may contain a recipient name that is an alias on the local host or a remote host.  For example, if the host "eyolo" contains the following alias in addition to the aliases above:
  1328.  
  1329. # gang mail
  1330. gang se-gang@sesac nc-gang@ncsac ey-gang@eyolo
  1331.  
  1332. then mail addressed to "gang" will be forwarded to the alias "se-gang" at the host "sesac," to the alias "nc-gang" at the host "ncsac" and to the alias "ey- gang" on "eyolo" itself.  The mail forwarded to "ey-gang" will then be forwarded again, as indicated by the example alias above for "ey-gang."
  1333.  
  1334.  
  1335.  
  1336. The use of an ALIAS file is optional.  If you are just getting started with TCP/IP, you might want to wait until you are more familiar with mail addressing before you establish this file.  More information on mail addressing is given in section 6.4.
  1337.  
  1338. Your local TCP/IP user group may maintain an alias file, so you should inquire as to its availability.
  1339.  
  1340. A.8.    The FTP Users File -- FTPUSERS
  1341.  
  1342.  
  1343. The file "FTPUSERS,"is used to control remote FTP access.  The default is NO access; if this file does not exist, the FTP server will be unusable.  A remote user must first "log in" to the system, giving a valid name and password listed in FTPUSERS, before he or she can transfer files.
  1344.  
  1345. Each entry in FTPUSERS consists of a single line of the form
  1346.  
  1347. <username> <password> <directory1> <perm1> <directory2> <perm2>
  1348.  
  1349. There must be exactly one space between each field.  Comment lines are begun with "#" in column one.  <username> is the user's assigned login name. "password" is the required password.  Note that this is transmitted in plain text; therefore it is not a good idea to give general write permission to the top of your drive.  A password of "*" (a single asterisk) means that any password is acceptable.
  1350.  
  1351. <directoryN> is the name of a directory that may be accessed by the remote user.  The remote user will also have access to the subdirectories of this directory.  The directory name must be absolute, i.e. it must begin from the root directory (\).
  1352.  
  1353. <permN> is a decimal number granting permission for read, write, and overwrite and delete operations for <directoryN> and its subdirectories.  For a permission of 1, the user is allowed to read a file subject to the directory access restrictions.  A permission of 2 allows a user to write a new file if it does not overwrite an existing file.  A permission of 4 allows a user to write a file even if it overwrites an existing file, and in addition he or she may delete files.  Again, all operations are allowed subject to the directory access restrictions.  Permissions may be combined by adding permission values.  For example, 3 (= 2 + 1) means that the user is given read and create permission, but not overwrite/delete permission.  Similarly, 7 (= 3 + 2 + 1) means that the user is given read, write, overwrite and delete privileges.
  1354.  
  1355. It is a standard convention to keep a repository of downloadable files in the folder public and to allow users to logon with the username "anonymous" with no password to access these files.  In some areas, the public access username is "guest."  Every system providing an FTP server is encouraged to provide restricted access to "anonymous" and "guest" users.  The appropriate FTPUSERS entries allowing the users "anonymous" and "guest" to read files under public and sub-folders, but not to write, overwrite or delete any files are:
  1356.  
  1357. anonymous * public 1
  1358. guest * public 1
  1359.  
  1360. If you want to allow these users to write files as well, but not to overwrite or delete files, change the permission to 3.
  1361.  
  1362. You might want to give a friend access to both his or her own folder as well as the public access folder.  For example:
  1363.  
  1364. n6spe test :users:n6spe 7 :public 3
  1365.  
  1366. This gives user "n6spe," with password "test," read, write, overwrite and delete privileges for files under :users:n6spe and read and write privileges for files under :public; he may not access files in other folders.
  1367.  
  1368.  
  1369.  
  1370.  
  1371. A.9.    Finger Files
  1372.  
  1373. Finger files are information files having the name <file>.txt, stored in the finger  folder.  It is common practice to set up a file for each of the users on the host.  Thus, if n6gf is a user, he should have an information file named "n6gf.txt."  This file is edited with a text editor and should include information about the user such as his or her full name, address, and phone number.  Additionally, information about the packet system, such as computer, TCP/IP software, TNC, radio, and antenna could be included.  Using the finger command, as described in section 9.2, the remote user can access the names of the finger files and then have them displayed on his or her console.  Thus, you could have a separate information file for your system and include general information about the files available for downloading and your usual hours of operation.  There is no specified format for these files.  They will be displayed on the remote host just as they appear in the file.
  1374.  
  1375.  
  1376. Appendix B.  NET/Mac Command Descriptions
  1377.  
  1378. Given below are some of the basic commands listed by the "help" command in NET/Mac.  If the command is described in more detail in this guide, the section(s) in which it is referenced is given in parentheses.  An asterisk (*) after the section reference indicates that not all of the sub-commands have been described in this guide. The syntax for all the commands used with NET/Mac commands are also available in the PA2AGA DA called NET/Mac Syntax.
  1379.  
  1380. #$debug on. Helps in debugging Autoexec.net file.
  1381.  
  1382. ?     Brings up the help dialog from the Apple menu.
  1383.  
  1384. arp    Address Resolution Protocol.  Connects IP addresses with callsigns.
  1385.  
  1386. attach    Configure and attach a hardware interface. (A.3.5)*
  1387.  
  1388. ax25    AX.25 (normal packet) services. (4.2, 8., 9.1, A.3.3, A.3.14-A.3.19)
  1389.  
  1390. cd    Change directory. (4.4.3)
  1391.  
  1392. close    Close a session. (5.4, 8.3)
  1393.  
  1394. connect    AX.25 connect request. (8.1)
  1395.  
  1396. dir    List contents of a directory. (4.4.4)
  1397.  
  1398. disconnect    Close a session (alias for close). (5.4, 8.3)
  1399.  
  1400. echo    Controls telnet keyboard echo.
  1401.  
  1402. eol    Controls telnet end of line behaviour.
  1403.  
  1404. escape    Controls command-mode escape command (not available on PC).
  1405.  
  1406. exit    Exit NET/Mac and return to DOS. (4.3, 4.7)
  1407.  
  1408. finger    Finger information files on remote host. (9.2, A.9)
  1409.  
  1410. forward    Forward traffic to another hardware interface.
  1411.  
  1412. ftp    File Transfer Protocol. (4.2, 7.)
  1413.  
  1414. help    List NET/Mac commands. (4.4.1)
  1415.  
  1416. hostname    Display or set hostname. (A.3.2)
  1417.  
  1418. kick    Force an immediate retransmission on a session.
  1419.  
  1420. log    Controls logging of server sessions. (A.3.21)
  1421.  
  1422. ip    Internet Protocol. (A.3.4, A.3.6)*
  1423.  
  1424.  
  1425. mbox    AX.25 mailbox.  (8.4, A.3.20)
  1426.  
  1427. mode    Controls transmission mode on AX.25 interfaces.
  1428.  
  1429. netrom    Controls NET/ROM services.
  1430.  
  1431. nrstat    Displays NET/ROM statistics.
  1432.  
  1433. param    Invokes a device-specific control routine. (A.3.7)*
  1434.  
  1435. ping    Query a remote host. (9.3)
  1436.  
  1437. pwd    Display name of current directory. (4.4.2)
  1438.  
  1439. record    Record telnet or AX.25 session to a disk file. (5.3.1, 8.2.1)
  1440.  
  1441. reset    Reset a session.
  1442.  
  1443. route    Controls the routing table. (10., A.3.8)
  1444.  
  1445. session    Controls sessions selection. (4.5, 5.2, 8.4)
  1446.  
  1447. smtp    Simple Mail Transport Protocol. (6.5, A.3.9, A.3.10)*
  1448.  
  1449. start    Start a server. (4.4.5, A.3.13)
  1450.  
  1451. stop    Stop a server. (4.4.6)
  1452.  
  1453. tcp    Transport Control Protocol. (10.1, A.3.11, A.3.12)
  1454.  
  1455. telnet    Telnet keyboard-to-keyboard protocol. (4.2, 5.)
  1456.  
  1457. trace    Monitor packet traffic. (9.4)
  1458.  
  1459. udp    User datagram protocol.
  1460.  
  1461. upload    Upload ASCII file to telnet or AX.25 session. (5.3.1, 8.2.2)
  1462.  
  1463. ?    List NET/Mac commands. Alias for help. (4.4.1)
  1464.